package test.entradas
import static org.junit.Assert.*
import java.text.SimpleDateFormat
import org.junit.Before
import org.junit.Test
import java.util.Date 
import entradas.Entrada
import entradas.Precio
import entradas.exception.BusinessException

class testRegistrarVentas {

		def entradaNormalDisponible
		def entradaAnticipada
		def entradaNormalNoDisponible
		def precio1
		def precio2
		def fechaHoy
		def fechaCompare1
		def fechaCompare2
		
		
		
		
	
		
		@Before
		void init() {
			fechaCompare1 = new Date().parse("dd/mm/yyyy", "10/10/2012")
			fechaCompare2 = new Date().parse("dd/mm/yyyy", "10/10/2014")
			precio1 = new Precio(precioMayores: 20, precioMenores: 15, precioJubilados: 10)
			precio2 = new Precio(sector: 'A',  precioMayores: 50, precioMenores: 40, precioJubilados: 30)
			entradaNormalDisponible = new Entrada(unPrecio: precio1, fechaVencDescAnticipada: fechaCompare1, codBarra:5679, porcentajeDescuentoPorAnticipada: 0.5, estaDisponible:true)
			entradaAnticipada = new Entrada(unPrecio: precio2, fechaVencDescAnticipada: fechaCompare2, codBarra:5678, porcentajeDescuentoPorAnticipada: 0.5, estaDisponible:true)
			entradaNormalNoDisponible = new Entrada(unPrecio: precio2, fechaVencDescAnticipada: fechaCompare2, codBarra:5677, porcentajeDescuentoPorAnticipada: 0.5, estaDisponible:false)
			
					}
		
		@Test
		void venderEntradaMayor() {
				
			entradaNormalDisponible.vender("Mayor")
			assertEquals(20, entradaNormalDisponible.precioFinal,0)
		}
		
		@Test
		void venderEntradaMayoryConDescuento() {
			entradaAnticipada.vender("Mayor")
			assertEquals(25, entradaAnticipada.precioFinal,0)
		}
		
		@Test(expected = BusinessException)
		void venderEntradaNoDisponible() {
			entradaNormalNoDisponible.vender("mayor")
		}
}